package tp1;

import java.util.ArrayList;
import java.util.List;

public class Personaje extends ObjetoDragonBall {

	private int resistencia;
	private List<Esfera> esferas = new ArrayList<Esfera>();
	private Casillero casillero;
	private String Image;
	
	public Personaje(){
		
	}

	public String getImage() {
		return Image;
	}

	public void setImage(String image) {
		Image = image;
	}

	public Casillero getCasillero() {
		return casillero;
	}

	public void setCasillero(Casillero casillero) {
		this.setProperty("casillero", casillero);
		// this.casillero = casillero;
	}

	public Personaje(String nombre, int resistencia, String imagen) {
		this.setNombre(nombre);
		this.setResistencia(resistencia);
		this.setImage(imagen);
	}

	public int getResistencia() {
		return resistencia;
	}

	public void setResistencia(int resistencia) {
		this.resistencia = resistencia;
	}

	public List<Esfera> getEsferas() {
		return esferas;
	}

	public void setEsferas(List<Esfera> esferas) {
		this.esferas = esferas;
	}

	public Boolean puedeRecorrer(int distancia) {
		return this.getResistencia() >= distancia;
	}

	public Boolean puedeLlamar() {
		return this.getEsferas().size() == 7;
	}

	public void irAPunto(Punto punto) {

	}

	public void juntarEsfera(Esfera esfera) {
		this.getEsferas().add(esfera);
	}

	public int getPosicion() {
		return this.getCasillero().getPosicion();
	}

	/**
	 * Este metodo mueve a un persona de un casillero a otro.
	 * 
	 * @param unCasillero
	 * @param distancia
	 */
	public void irACasillero(Casillero unCasillero, int distancia) {
		this.getCasillero().setPersonaje(null);
		this.juntarEsfera(unCasillero.quitarEsfera());
		this.setCasillero(unCasillero);
		unCasillero.setPersonaje(this);
		this.setResistencia(this.getResistencia() - distancia);
	}

	public int cantidadDeEsferas() {
		return this.getEsferas().size();
	}

}
